home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / graphic / frasr182.zip / FRACTSRC.DOC < prev    next >
Text File  |  1992-09-12  |  18KB  |  428 lines

  1. The source code for Fractint is freely available.
  2.  
  3. Enhancements to it are appreciated.  If you want to add something to
  4. Fractint and join the Stone Soup Group, please do!  To submit changes,
  5. see "Contacting the Authors" in Fractint's online help.
  6.  
  7.  
  8. Copyright Information:
  9. ======================
  10.  
  11. Some parts of the source are from the public domain and are not
  12. copyrighted.
  13.  
  14. Some parts of the source bear explicit copyright notices from the
  15. author and are subject to the conditions listed there by the author.
  16.  
  17. The remainder of the source (not already public domain, no explicit
  18. author's copyright notice) is Copyright 1990, 1991 by the Stone Soup Group
  19. (a loosely associated and ever-growing group of fanatic programmers).
  20.  
  21. The source code may be copied freely and may be used in other programs
  22. under the following conditions:
  23.   It may not be used in a commercial program which produces fractal images.
  24.   Please credit the author (in general, credit Fractint and the Stone Soup
  25.   Group) as the source of the code.
  26.  
  27.  
  28. Distribution of modified versions of Fractint:
  29. ==============================================
  30.  
  31. If you enhance Fractint and want to distribute the results to others, the
  32. preferred approach is to join the Stone Soup Group - send us your
  33. enhancements and get your name in lights in future versions of Fractint.
  34.  
  35. We prefer that a modified Fractint executable program not be distributed to
  36. others, but understand that you might want to give copies to friends.  This
  37. is permitted, under the following conditions:
  38.   o The modified executable has a different name than "fractint.exe".
  39.   o The distribution includes a full unmodified copy of the corresponding
  40.     original version of fraint.exe.  (The easiest way is to copy fraint.exe
  41.     to yournew.exe, then "pkzip -a fraint.exe newfract.exe" to add your
  42.     version, and perhaps add a read.me file to describe it.)
  43.   o The heading displayed by the modified program clearly indicates that
  44.     it is a non-standard release.  E.g. you might change the heading to
  45.     say "Non-standard Fractint, Modified by John Doe".
  46.   o All author credits and distribution information in the online help
  47.     are unchanged (adding lines for your work is of course ok.)
  48.  
  49. The source code for a modified version of Fractint may not be distributed.
  50. (This is because we don't want any chance of confusion over which version
  51. of a source file is the official release.)
  52.  
  53.  
  54. Compiling Fractint:
  55. ===================
  56.  
  57. FRASRC.EXE includes the complete source code for FRACTINT (.C and .ASM).
  58. Recognizing that not everyone HAS (or even wants) an assembler, much less
  59. either MASM 5.1 or Turbo-ASM, which are the only two assemblers that the
  60. authors are aware of that can handle these particular files, it also contains
  61. a complete set of .OBJ files from the assembler code,
  62.  
  63. The distributed source will not compile to exactly match the Fractint
  64. release - it compiles with a different version number and heading.
  65.  
  66. The Microsoft 6.00A C compiler and Microsoft 5.1 assembler are used for
  67. Fractint releases, so that is the one combination of compiler/assembler
  68. which is pretty much guaranteed to handle FRACTINT in all of its various
  69. mutations.
  70.  
  71. Given that several of FRACTINT's co-authors now prefer (or only have!)
  72. alternate combinations, we have re-arranged the code to (usually) handle
  73. several popular alternatives.  In particular:
  74.  
  75. Microsoft C 6.00A and MASM 5.1:
  76. -------------------------------
  77. Just run MAKEFRAC.BAT, which invokes the Microsoft NMK utility using the
  78. files FRACHELP.MAK, FRACTINT.MAK, and FRACTINT.LNK.  Note that the assembler
  79. .OBJ files have been included in the .ZIP file, so that you don't really
  80. need MASM unless you are going to modify one or more of them.  If you ARE
  81. going to modify one of the assembler files, note that the distributed
  82. versions rely on some nifty features added to version 5.1 (like the '.model
  83. medium,c' option) and will not assemble under older versions of MASM without
  84. a LOT of work.
  85.  
  86. Note that C 6.00 (the original release) had some problems.  We never used it
  87. for a Fractint release.  If you don't have the fixed version (6.00A) you
  88. should compile parser.c, loadfile.c, and calcfrac.c with no optimization,
  89. using the /qc option.  There might be other problems, those are the only
  90. ones we're aware of...
  91.  
  92. Warning: FRACTINT.MAK uses C6.00A's most aggressive optimizations.  It is
  93. assumed there is no aliasing.  See Microsoft's documentation on the /Oa
  94. and /Oz options.
  95.  
  96. Microsoft C 5.1:
  97. ----------------
  98. Edit MAKEFRAC.BAT: comment out the two "nmk ..." lines and uncomment
  99. the lines for C5.1.  Then run MAKEFRAC.
  100.  
  101. Quick-C:
  102. --------
  103. FRACTINT is just too big for the interactive Quick-C (QC) environment.
  104. You have to use the command-line variant of Quick-C (QCL).
  105.  
  106. Edit MAKEFRAC.BAT: comment out the two "nmk ..." lines and uncomment
  107. the lines for QuickC.  Then run MAKEFRAC.
  108.  
  109. We're not sure all versions of QuickC work.  2.01 works as of
  110. Fractint version 16.  Depending on how much memory you have available,
  111. you may have to manually compile some modules without the /O option.
  112.  
  113. Turbo-C, Turbo-C++ and TASM
  114. ---------------------------
  115. Sorry, Turbo-C fans, but since version 14.0, FRACTINT requires TC++.
  116. The lack of initialized FAR arrays and structures just did the older Turbo-C
  117. product in.  The *good* news is that some of the FRACTINT authors now
  118. use Turbo-C++, so the odds of released FRACTINT distributions that do
  119. not compile with Turbo products are lower than they used to be.
  120.  
  121. A TCFRACT.PRJ and TCHELP.PRJ file is included for Turbo-C users.  You should
  122. rename these to FRACTINT.PRJ and HC.PRJ before compiling fractint.  
  123.  
  124. With TC++ you'll have to do a manual step for the help system each time you
  125. create a new fractint.exe - see notes in next section.
  126.  
  127.  
  128. Borland C++ 3.0 and 3.1 Users
  129. -----------------------------
  130. Rename the BCFRACT.PRJ and BCHELP.PRJ files to FRACTINT.PRJ and HC.PRJ.
  131. The project file will generate the FRACTINT.HLP file, but you will still
  132. have to run "hc /a" from the DOS command line to append the help
  133. information.
  134.  
  135.  
  136.  
  137. Help System
  138. ===========
  139.  
  140. You'll need to set up the help files to get any online help from a modified
  141. version of Fractint.
  142.  
  143. For MSC users the MAKEFRAC.BAT file contains the necessary steps, you don't
  144. need to do anything special.
  145.  
  146. TC++ users should:
  147.   start by creating HC.EXE using the supplied HC.PRJ file
  148.   run "hc /c" to create the file FRACTINT.HLP
  149.   each time you create a new fractint.exe, afterward run "hc /a" to append
  150.     FRACTINT.HLP to the new FRACTINT.EXE
  151.  
  152. You don't need to understand the rest of this section unless you have a
  153. problem.
  154.  
  155. The source for Fractint's help is in the files HELP.SRC, HELP2.SRC, HELP3.SRC,
  156. HELP4.SRC, and HELP5.SRC.  The format of these files is described in HC.DOC.
  157.  
  158. The program HC.C ("help compiler") is used to convert the help text into
  159. the form Fractint uses at run time.
  160.  
  161. Running "hc /c" compiles HELPx.SRC.  It produces the file HELPDEFS.H for
  162. use when compiling Fractint, and the file FRACTINT.HLP.
  163. Running "hc /a" appends the FRACTINT.HLP file to FRACTINT.EXE to make the
  164. compiled help info available at run time.
  165.  
  166.  
  167. Overlays
  168. ========
  169.  
  170. Note: generally you won't have to worry about this!
  171. Only the addition of huge code (new overlays), or work which changes the
  172. relationship between major components of Fractint, are likely to affect
  173. the overlay structure.    However, if you make changes in a module which has a
  174. comment at the start saying it is an overlay, please follow the guidelines
  175. for use of ENTER_OVLY and EXIT_OVLY described after the next paragraph.
  176.  
  177. Fractint uses the Microsoft Link overlay feature, to reduce the runtime
  178. memory required (which would otherwise exceed what DOS can give it.)
  179. Some caution is required with overlays.  Those source modules which are
  180. part of an overlay have a comment to indicate this at the start.  See the
  181. fractint.lnk file for the current overlay structure.
  182. Some notes about overlays:
  183.   o The obvious one: control should not switch to different overlays
  184.     frequently, else Fractint will become sl